<?php
namespace App\Validator;

use App\Models\SmscodeLog;
use Illuminate\Validation\Validator;
use App\Models\SmsCode;

class CustomValidator extends Validator
{

	/**
	 * 手机号验证
	 */
	public function validateMobile($attribute, $value, $parameters)
	{
		if (preg_match('/^1[3|4|5|7|8][0-9]{9}$/', $value)) {
			return true;
		}
		return false;
	}

	/**
	 * 短信验证码的验证规则
	 */
	public function validateSmsVcode($attribute, $value, $parameters)
	{
		// 取出要验证的手机号。
		$mobile = array_get($this->getData(), isset($parameters[0]) ? $parameters[0] : 'mobile');

		// 如果手机号是测试号，则验证码为固定值。
		if ((in_array($mobile, [
			'17777777777','18649949098','18777777777'
		]) || env('APP_DEBUG') || (substr($mobile, 0, 3) === '136' && (int) substr($mobile, 3) < 1000 && (int) substr($mobile, 3) > 0)) && $value === '112233') {
			return true;
		}

		// 取出验证码。
		$sms_code = SmscodeLog::where('mobile',$mobile)->where('status',0)->first();
		if(!is_null($sms_code)){
			// 与输入进行比较。
			if ($value == $sms_code->code) {
	
				$sms_code->status = 1;
				$sms_code->save();
	
				return true;
			}
		}
		

		return false;
	}

}
